// 前缀极差
// 求指定序列中最大值与最小值的差值

#include <iostream>
using namespace std;

int a[100000];
int Max[100000];
int Min[100000];

int main(void)
{
    int n, q;
    cin >> n >> q;
    
    cin >> a[0];
    int max = a[0];
    int min = a[0];
    Max[0] = max;
    Min[0] = min;
    for(int i=1; i<n; i++)
    {
        cin >> a[i];
        max = a[i] > max ? a[i] : max;
        min = a[i] < min ? a[i] : min;
        
        Max[i] = max;
        Min[i] = min;
    }
    
    int x[q];
    for(int i=0; i<q; i++)
        cin >> x[i];
    
    for(int i=0; i<q; i++)
        cout << Max[x[i]-1] - Min[x[i]-1] << " ";
    cout << endl;
}